1. Field of the Invention
This invention relates to improvements in methods and circuits for backing up data, and, more particularly, to improvements in methods and circuits for reliably and safely backing up selected data during the operation of a network of the type which has a data monitoring facility and includes at least a block-level storage protocol, or the like, and, still more particularly, to improvements in methods and circuits for reliably and safely backing up selected data during the operation of a Fibre Channel switch, or the like.
2. Relevant Background
Mainframes, supercomputers, mass storage systems, workstations and very high-resolution display subsystems are frequently connected together to facilitate file and print sharing. Common networks and channels used for these types of connections oftentimes introduce communications bottlenecking, especially in cases where the data is in a large file format typical of graphically-based applications.
There are two basic types of data communications connections between processors and between a processor and peripherals: channels and networks. A xe2x80x9cchannelxe2x80x9d provides a direct or switched point-to-point connection between communicating devices. The primary task of a channel is to transport data at the highest possible data rate with the least amount of delay. Channels typically perform simple error correction in hardware. A xe2x80x9cnetworkxe2x80x9d, by contrast, is an aggregation of distributed nodes (e.g. workstations, mass storage units) with its own protocol, which supports interaction among these nodes. Typically, each node contends for the transmission medium, and each node must be capable of recognizing error conditions on the network and must provide the error management required to recover from the error conditions.
One type of communications interconnect that has been developed is Fibre Channel. The Fibre Channel protocol was developed and adopted as the American Nation Standard for Information Systems (ANSI). See Fibre Channel Physical and Signaling Interface, Revision 4 2, American National Standard for Information Systems (ANSI) (1993) for a detailed discussion of the Fibre Channel standard. Briefly, Fibre Channel is a switched protocol that allows concurrent communication among workstations, supercomputers, and various peripherals. The total network bandwidth provided by Fibre Channel is on the order of tens or hundreds of gigabits per second. Fibre Channel is capable of transmitting frames at rates exceeding 1 gigabit per second simultaneously in both directions. It is also able to transport commands and data according to existing protocols such as Internet protocol (IP), small computer system interface (SCSI), high performance parallel interface (HIPPI), and intelligent peripheral interface (IPI) over optical fiber or copper cable.
FIG. 1 illustrates a variable-length frame 11, as described by the Fibre Channel standard. The variable-length frame 11 comprises a 4-byte start-of-frame (SOF) indicator 12, which is a particular binary sequence indicative of the beginning of the frame 11. The SOF indicator 12 is followed by a 24-byte header, which generally specifies, among other things, the frame source address, the destination address, as well as whether the frame 11 is either control information or actual data.
The header 14 is followed by a field 16 of variable-length data. The length of the data frame 16 is 2112 bytes. The data 16 is followed successively by a 4-byte CRC (cyclical redundancy check) code 17 for error detection, and by a 4-byte end-of-frame (EOF) indicator 18. The frame 11 of FIG. 1 is much more flexible than a fixed frame, and provides for higher performance by accommodating the specific needs of specific applications.
FIG. 2 illustrates a block diagram of a representative Fibre Channel architecture in a Fibre Channel network 100. As an example of the architecture, a workstation 120, a mainframe 122, and a supercomputer 124 are interconnected with various subsystems via a Fibre Channel fabric 110 (i.e., a Fibre Channel switch). The subsystems may include, for example, a tape subsystem 126, a disk subsystem 128, and a display subsystem 130. The fabric 110 is an entity that interconnects various node-ports (N_ports) 140 and their associated workstations.
Mainframes and peripherals are attached to the fabric 110 through the fabric ports (F_ports) 142. The essential function of the fabric 110 is to receive frames of data from a source N_port, and, using a first protocol, to route the frames to a destination N_port. In a preferred embodiment, the first protocol is the Fibre Channel protocol. Other protocols, such as the asynchronous transfer mode (ATM) also can be used.
Thus, the Fibre Channel is a channel-network hybrid, containing enough network features to provide the needed connectivity, distance, and protocol multiplexing, and enough channel features to retain simplicity, repeatable performance, and reliable delivery. The Fibre Channel 110 allows for an active, intelligent interconnection scheme, known as a xe2x80x9cfabric,xe2x80x9d or Fiber Channel switch, to connect devices. The fabric includes a plurality of (F_ports) that provide for interconnection and frame transfer between a plurality of (N_ports) attached to associated devices that may include workstations, supercomputers and/or peripherals. The fabric has the capability of routing frames based upon information contained within the frames. The N_ports manages the simple point-to-point connections between themselves and the fabric. The type of N_ports and their associated devices dictates the rate that the N_ports transmit and receive data to and from the fabric. Transmission is isolated from the control protocol so that different topologies, such as point-to-point links, rings, multidrop buses, cross point switches, and the like, can be implemented.
The Fibre Channel industry standard also provides for several different types of data transfers. A class 1 transfer requires circuit switching, that is, a reserved data path through the network switch. Class 1 transfers generally involve the transfer of more than one frame, oftentimes numerous frames, between two identified network elements. In contrast, a class 2 transfer requires an allocation of a path through the network switch for each transfer of a single frame from one network element to another. Frame switching for class 2 transfers is more difficult to implement than class 1 circuit switching, as frame switching requires a memory mechanism for temporarily storing incoming frames in a source queue prior to their routing to a destination port, or a destination queue at a destination port. A memory mechanism typically includes numerous input/output (I/O) connections with associated support circuitry and queuing logic.
Additional complexity and hardware is required when channels carrying data at different bit rates are to be interfaced.
It is known to employ centralized queuing that is inherently slow, as a common block of logic must be employed, for all routing decisions within the switch. It is also known to employ distributed source queuing and distributed destination queuing.
In the past, mirroring operations have been employed to replicate data traversing a Fibre Channel switch. However, such multicast operations generally place the frame replicator directly in the path of the data, so that when a backup occurs, if a write is detected in the data to be backed up, the backup is put on hold until the write is completed.
In light of the above, therefore, it is an object of the invention to provide an improved method and circuit for use in backing up data frames in conjunction with a Fibre Channel switch.
To perform the data backup, a volume of data is replicated from a storage device using a reliable multicast protocol provided by a switched Fibre Channel storage area network. The majority of the replication takes place while an application continues to operate on the volume. While copying the data from the volume to be replicated, a port server monitors the application traffic to the storage device via a multicast protocol. If, after copying a particular block of data, the port server identifies a write to that block of data in the monitored traffic, the port server will mark that block of data as xe2x80x9cdirty.xe2x80x9d Once all blocks of data in the volume have been read, the port server returns to the start and begins rereading the xe2x80x9cdirtyxe2x80x9d blocks, still monitoring the traffic to the storage device. Once the list of xe2x80x9cdirtyxe2x80x9d blocks is deemed sufficiently small, the port server stops the application and completes the rereading of the xe2x80x9cdirtyxe2x80x9d blocks. The resulting volume replica is then available for use for other applications, such as but not limited to backup, remote replication, data migration, or the like.
Thus, according to a broad aspect of the invention, A network of the type which has a data monitoring facility and includes at least a block-level storage protocol is provided. The network includes data input and output ports, a storage device for storing data frames, a backup storage device, a port server, and a data monitor for receiving data frames from an output port and applying the data frames to the data storage device, and at least an identification thereof to the port server.
The storage device may be, for example, a data storage array, a data storage disk, or the like. The port server is configured to backup data frames from the storage device to the backup storage device, to identify data frames that have been changed during the backup, and to rewrite the identified frames to the data storage backup device. The port server may include a memory so that the data monitor applies an entire data frame to the port server memory. The port server may be configured to identify data frames that have been changed during the backup, and to rewrite the identified frames to the data storage backup device from the port server memory.
Alternatively, the port server may include a memory for receiving frame identification data from the data monitor. The port server may be configured to identify data frames that have been changed during the backup, and to rewrite the identified frames to the data storage backup device from the data storage device. If desired, the port server may be further configured to determine if a first predetermined criteria has occurred and to affect an application that is running until a second predetermined criteria has occurred. Examples of such criteria may be the occurrence of a first predetermined quantity of data having been identified as having been changed, or that a particular number of data frames have been changed, that a particular time of day has occurred, or the like.
According to another broad aspect of the invention, a circuit is provided for use in association with a Fibre Channel network of the type having a Fibre Channel switch configured to receive Fibre Channel data frames on an input port for writing via an output port to a data storage device. The circuit includes a data storage device for receiving data from the output port of the Fibre Channel switch and a data storage backup device. A port server is provided, the port server being configured to perform a data backup process to backup data in the data storage device to the data storage backup device. The backup process is performed by reading data volumes from the data storage device and writing backup copies of at least some of the read data volumes to the data storage backup device. In one embodiment, a data monitor is provided for receiving Fibre Channel data frames from the output port and applying the data frames to the data storage device and at least an identification of the data frames, in a first embodiment, or the entire data frames, in a second embodiment, to the port server.
In the first embodiment, the port server is further configured to identify blocks or logical blocks in the volume that have been changed during the backup process as indicated by the data frames sent by the data monitor to the port server, and to reread the identified frames from the data storage array and write the reread frames to the data storage backup device. In the second embodiment, the port server includes a port server memory to save the Fibre Channel data frames applied thereto and is further configured to identify frames in the volume that have been changed during the backup process as indicated by the data frames sent by the data monitor to the port server. The port server then writes the identified frames from the port server memory to the data storage backup device.
According to another broad aspect of the invention, a method is provided for backing up data in association with a Fibre Channel network of the type having a Fibre Channel switch configured to receive Fibre Channel data frames on an input port for writing via an output port to a data storage device. The method includes issuing a command from a port server to the Fibre Channel switch to create a data frame group that includes a data storage device and the port server. The Fibre Channel data frames are written from the output port of the Fibre Channel switch to the data storage device, and, in a third embodiment, at least frame identification portions of which are written to the port server. In a fourth embodiment, Fibre Channel data frames are written from the output port of the Fibre Channel switch both to the data storage device and to the port server. The port server is operated to perform a data backup process to backup data in at least a portion of the data storage device to the data storage backup device.
In the third embodiment, the backup process includes reading predetermined data volumes from the data storage device and writing backup copies of the read data volumes to the data storage backup device. Fibre Channel data frames written to the port server which are within the predetermined data volumes read from the data storage device to be backed up are identified, and the identified Fibre Channel frames are reread from the data storage device and written to the data storage backup device.
In the fourth embodiment, predetermined data volumes are read from the data storage device and backup copies of the read data volumes are written to the data storage backup device. Fibre Channel data frames written during the data backup process to the port server which are within the predetermined data volumes read from the data storage device to be backed up are identified, and the identified Fibre Channel frames are written from the port server to the data storage backup device.
In a fifth embodiment, frames in either direction, i.e., frames destined either for the data storage device or for the original source of the TO may be are sent to the port server.